home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
clean
/
sun3.lha
/
Sun3
/
deltaS.abc
< prev
next >
Wrap
Text File
|
1992-08-07
|
8KB
|
569 lines
.comp 800 111111011
.code 253 12 55
.start _nostart_
.endinfo
.implab _cycle_in_spine
.implab _reserve
.implab _type_error
.impdesc _Defer
.implab _defer_code
.implab _hnf
.impdesc _Cons
.impdesc _Tuple
.impdesc _Select
.impdesc _Nil
.implab _driver
.implab e_system_nAP
.implab e_system_sAP
.impdesc e_system_AP
.desc m_deltaS _hnf _hnf 0 "deltaS"
.export e_deltaS_+S
.export e_deltaS_s+S
.export e_deltaS_n+S
.desc e_deltaS_+S e_deltaS_n+S e_deltaS_l+S 2 "+S"
.o 2 0
e_deltaS_l+S:
push_args 0 1 1
update_a 2 1
create
update_a 0 3
pop_a 1
.d 3 0
jmp ea+S
.n 2 e_deltaS_+S
.o 1 0
e_deltaS_n+S:
push_node _reserve 2
.o 3 0
ea+S:
|| STRING
push_a 1
jsr_eval
pop_a 1
|| STRING
jsr_eval
|| STRING
|| STRING
.o 3 0
e_deltaS_s+S:
.o 3 0
s+S.1:
|| Match code for alternative 1, stacksizes A: 2 B: 0
|| Building the contractum, Stacksizes A: 2 B: 0
.inline +S
catS 0 1 2
pop_a 2
.end
.d 1 0
rtn
.export e_deltaS_=S
.export e_deltaS_s=S
.export e_deltaS_n=S
.desc e_deltaS_=S e_deltaS_n=S e_deltaS_l=S 2 "=S"
.o 2 0
e_deltaS_l=S:
repl_args 1 1
.d 2 0
jsr ea=S
.o 0 1 b
create
fillB_b 0 0
pop_b 1
.d 1 0
rtn
.n 2 e_deltaS_=S
.o 1 0
e_deltaS_n=S:
push_node _reserve 2
.d 2 0
jsr ea=S
.o 0 1 b
getWL 0
fillB_b 0 0
release
pop_b 1
.d 1 0
rtn
.o 2 0
ea=S:
|| STRING
push_a 1
jsr_eval
pop_a 1
|| STRING
jsr_eval
|| STRING
|| STRING
.o 2 0
e_deltaS_s=S:
.o 2 0
s=S.1:
|| Match code for alternative 1, stacksizes A: 2 B: 0
|| Building the contractum, Stacksizes A: 2 B: 0
.inline =S
cmpS 0 1
pushI 0
eqI
pop_a 2
.end
.d 0 1 b
rtn
.export e_deltaS_<>S
.export e_deltaS_s<>S
.export e_deltaS_n<>S
.desc e_deltaS_<>S e_deltaS_n<>S e_deltaS_l<>S 2 "<>S"
.o 2 0
e_deltaS_l<>S:
repl_args 1 1
.d 2 0
jsr ea<>S
.o 0 1 b
create
fillB_b 0 0
pop_b 1
.d 1 0
rtn
.n 2 e_deltaS_<>S
.o 1 0
e_deltaS_n<>S:
push_node _reserve 2
.d 2 0
jsr ea<>S
.o 0 1 b
getWL 0
fillB_b 0 0
release
pop_b 1
.d 1 0
rtn
.o 2 0
ea<>S:
|| STRING
push_a 1
jsr_eval
pop_a 1
|| STRING
jsr_eval
|| STRING
|| STRING
.o 2 0
e_deltaS_s<>S:
.o 2 0
s<>S.1:
|| Match code for alternative 1, stacksizes A: 2 B: 0
|| Building the contractum, Stacksizes A: 2 B: 0
.inline <>S
cmpS 0 1
pushI 0
eqI
notB
pop_a 2
.end
.d 0 1 b
rtn
.export e_deltaS_<S
.export e_deltaS_s<S
.export e_deltaS_n<S
.desc e_deltaS_<S e_deltaS_n<S e_deltaS_l<S 2 "<S"
.o 2 0
e_deltaS_l<S:
repl_args 1 1
.d 2 0
jsr ea<S
.o 0 1 b
create
fillB_b 0 0
pop_b 1
.d 1 0
rtn
.n 2 e_deltaS_<S
.o 1 0
e_deltaS_n<S:
push_node _reserve 2
.d 2 0
jsr ea<S
.o 0 1 b
getWL 0
fillB_b 0 0
release
pop_b 1
.d 1 0
rtn
.o 2 0
ea<S:
|| STRING
push_a 1
jsr_eval
pop_a 1
|| STRING
jsr_eval
|| STRING
|| STRING
.o 2 0
e_deltaS_s<S:
.o 2 0
s<S.1:
|| Match code for alternative 1, stacksizes A: 2 B: 0
|| Building the contractum, Stacksizes A: 2 B: 0
.inline <S
pushI 0
cmpS 0 1
pop_a 2
ltI
.end
.d 0 1 b
rtn
.export e_deltaS_>S
.export e_deltaS_s>S
.export e_deltaS_n>S
.desc e_deltaS_>S e_deltaS_n>S e_deltaS_l>S 2 ">S"
.o 2 0
e_deltaS_l>S:
repl_args 1 1
.d 2 0
jsr ea>S
.o 0 1 b
create
fillB_b 0 0
pop_b 1
.d 1 0
rtn
.n 2 e_deltaS_>S
.o 1 0
e_deltaS_n>S:
push_node _reserve 2
.d 2 0
jsr ea>S
.o 0 1 b
getWL 0
fillB_b 0 0
release
pop_b 1
.d 1 0
rtn
.o 2 0
ea>S:
|| STRING
push_a 1
jsr_eval
pop_a 1
|| STRING
jsr_eval
|| STRING
|| STRING
.o 2 0
e_deltaS_s>S:
.o 2 0
s>S.1:
|| Match code for alternative 1, stacksizes A: 2 B: 0
|| Building the contractum, Stacksizes A: 2 B: 0
.inline >S
cmpS 0 1
pushI 0
pop_a 2
ltI
.end
.d 0 1 b
rtn
.export e_deltaS_<=S
.export e_deltaS_s<=S
.export e_deltaS_n<=S
.desc e_deltaS_<=S e_deltaS_n<=S e_deltaS_l<=S 2 "<=S"
.o 2 0
e_deltaS_l<=S:
repl_args 1 1
.d 2 0
jsr ea<=S
.o 0 1 b
create
fillB_b 0 0
pop_b 1
.d 1 0
rtn
.n 2 e_deltaS_<=S
.o 1 0
e_deltaS_n<=S:
push_node _reserve 2
.d 2 0
jsr ea<=S
.o 0 1 b
getWL 0
fillB_b 0 0
release
pop_b 1
.d 1 0
rtn
.o 2 0
ea<=S:
|| STRING
push_a 1
jsr_eval
pop_a 1
|| STRING
jsr_eval
|| STRING
|| STRING
.o 2 0
e_deltaS_s<=S:
.o 2 0
s<=S.1:
|| Match code for alternative 1, stacksizes A: 2 B: 0
|| Building the contractum, Stacksizes A: 2 B: 0
.inline <=S
cmpS 0 1
pushI 0
pop_a 2
ltI
notB
.end
.d 0 1 b
rtn
.export e_deltaS_>=S
.export e_deltaS_s>=S
.export e_deltaS_n>=S
.desc e_deltaS_>=S e_deltaS_n>=S e_deltaS_l>=S 2 ">=S"
.o 2 0
e_deltaS_l>=S:
repl_args 1 1
.d 2 0
jsr ea>=S
.o 0 1 b
create
fillB_b 0 0
pop_b 1
.d 1 0
rtn
.n 2 e_deltaS_>=S
.o 1 0
e_deltaS_n>=S:
push_node _reserve 2
.d 2 0
jsr ea>=S
.o 0 1 b
getWL 0
fillB_b 0 0
release
pop_b 1
.d 1 0
rtn
.o 2 0
ea>=S:
|| STRING
push_a 1
jsr_eval
pop_a 1
|| STRING
jsr_eval
|| STRING
|| STRING
.o 2 0
e_deltaS_s>=S:
.o 2 0
s>=S.1:
|| Match code for alternative 1, stacksizes A: 2 B: 0
|| Building the contractum, Stacksizes A: 2 B: 0
.inline >=S
pushI 0
cmpS 0 1
pop_a 2
ltI
notB
.end
.d 0 1 b
rtn
.export e_deltaS_INDEX
.export e_deltaS_sINDEX
.export e_deltaS_nINDEX
.desc e_deltaS_INDEX e_deltaS_nINDEX e_deltaS_lINDEX 2 "INDEX"
.o 2 0
e_deltaS_lINDEX:
repl_args 1 1
.d 2 0
jsr eaINDEX
.o 0 1 c
create
fillC_b 0 0
pop_b 1
.d 1 0
rtn
.n 2 e_deltaS_INDEX
.o 1 0
e_deltaS_nINDEX:
push_node _reserve 2
.d 2 0
jsr eaINDEX
.o 0 1 c
getWL 0
fillC_b 0 0
release
pop_b 1
.d 1 0
rtn
.o 2 0
eaINDEX:
|| INT
push_a 1
jsr_eval
pop_a 1
|| STRING
jsr_eval
|| INT
pushI_a 1
|| STRING
update_a 0 1
pop_a 1
.o 1 1 i
e_deltaS_sINDEX:
.o 1 1 i
sINDEX.1:
|| Match code for alternative 1, stacksizes A: 1 B: 1
|| Building the contractum, Stacksizes A: 1 B: 1
.inline INDEX
indexS 0
pop_a 1
.end
.d 0 1 c
rtn
.export e_deltaS_SLICE
.export e_deltaS_sSLICE
.export e_deltaS_nSLICE
.desc e_deltaS_SLICE e_deltaS_nSLICE e_deltaS_lSLICE 3 "SLICE"
.o 2 0
e_deltaS_lSLICE:
push_args 0 2 2
update_a 3 2
create
update_a 0 4
pop_a 1
.d 4 0
jmp eaSLICE
.n 3 e_deltaS_SLICE
.o 1 0
e_deltaS_nSLICE:
push_node _reserve 3
.o 4 0
eaSLICE:
|| INT
push_a 2
jsr_eval
pop_a 1
|| INT
push_a 1
jsr_eval
pop_a 1
|| STRING
jsr_eval
|| INT
pushI_a 2
|| INT
pushI_a 1
|| STRING
update_a 0 2
pop_a 2
.o 2 2 i i
e_deltaS_sSLICE:
.o 2 2 i i
sSLICE.1:
|| Match code for alternative 1, stacksizes A: 1 B: 2
|| Building the contractum, Stacksizes A: 1 B: 2
.inline SLICE
sliceS 0 1
pop_a 1
.end
.d 1 0
rtn
.export e_deltaS_UPDATE
.export e_deltaS_sUPDATE
.export e_deltaS_nUPDATE
.desc e_deltaS_UPDATE e_deltaS_nUPDATE e_deltaS_lUPDATE 3 "UPDATE"
.o 2 0
e_deltaS_lUPDATE:
push_args 0 2 2
update_a 3 2
create
update_a 0 4
pop_a 1
.d 4 0
jmp eaUPDATE
.n 3 e_deltaS_UPDATE
.o 1 0
e_deltaS_nUPDATE:
push_node _reserve 3
.o 4 0
eaUPDATE:
|| INT
push_a 2
jsr_eval
pop_a 1
|| CHAR
push_a 1
jsr_eval
pop_a 1
|| STRING
jsr_eval
|| INT
pushI_a 2
|| CHAR
pushC_a 1
|| STRING
update_a 0 2
pop_a 2
.o 2 2 c i
e_deltaS_sUPDATE:
.o 2 2 c i
sUPDATE.1:
|| Match code for alternative 1, stacksizes A: 1 B: 2
|| Building the contractum, Stacksizes A: 1 B: 2
.inline UPDATE
updateS 0 1
pop_a 1
.end
.d 1 0
rtn
.export e_deltaS_LENGTH
.export e_deltaS_sLENGTH
.export e_deltaS_nLENGTH
.desc e_deltaS_LENGTH e_deltaS_nLENGTH e_deltaS_lLENGTH 1 "LENGTH"
.o 2 0
e_deltaS_lLENGTH:
pop_a 1
.d 1 0
jsr eaLENGTH
.o 0 1 i
create
fillI_b 0 0
pop_b 1
.d 1 0
rtn
.n 1 e_deltaS_LENGTH
.o 1 0
e_deltaS_nLENGTH:
push_node _reserve 1
.d 1 0
jsr eaLENGTH
.o 0 1 i
getWL 0
fillI_b 0 0
release
pop_b 1
.d 1 0
rtn
.o 1 0
eaLENGTH:
|| STRING
jsr_eval
|| STRING
.o 1 0
e_deltaS_sLENGTH:
.o 1 0
sLENGTH.1:
|| Match code for alternative 1, stacksizes A: 1 B: 0
|| Building the contractum, Stacksizes A: 1 B: 0
.inline LENGTH
lenS 0
pop_a 1
.end
.d 0 1 i
rtn